<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
   <script type="text/javascript">
     //es5
       function sum(a,b) {
           //每一个函数在生成的时候都会自动带一个属性arguments
           //arguments存储的是实际调用的时候传递的参数
           //arguments是一个对象，但是长得像数组，用length查看大小
           //arguments是一个类似数组的对象，是一个伪数组
           console.log(arguments);
          if(arguments.length==2){
              console.log(arguments[0]+arguments[1]);
          }else {
              alert("您传递的参数有误");
          }
       }
       //在函数调用中，多传或者是少传参数都不会报错，如果少传参数，那么那个参数默认值是undefined
       //如果多传参数，那么只会取相应的参数进行计算
//       sum();
//       sum(2,10);
//       sum(2,3,4,5,6);

      function sum1(x,y) {
          var x=x||"abc";//逻辑或  短路或   false||true=true   隐式转换（空字符串false，非空字符串true）
          var y=y||1; //在逻辑判断中  0 隐式转换false   1隐式转换true
          console.log("第一个x的值是："+x+"第二个y的值是："+y);
      }
       sum1(10,20);
       sum1();
       sum1("",20);
       sum1("123",0);

         //todo   es6设置默认参数
       function sum2(m="abc",n=0) {
           console.log("第一个m的值是："+m+"第二个n的值是："+n);
       }
     sum2(10,20);
     sum2();
     sum2("",20);
     sum2("123",0);



   </script>
</body>
</html>